#ifndef LIBGO_MEM_ALLOC_H_
#define LIBGO_MEM_ALLOC_H_

enum
{
	// flags to malloc
	FlagNoPointers = 1<<0,	// no pointers here
	FlagNoProfiling = 1<<1,	// must not profile
	FlagNoGC = 1<<2,	// must not free or scan for pointers
};

extern void* runtime_mallocgc(uintptr size, uint32 flag, int32 dogc, int32 zeroed);
extern void* runtime_malloc(uintptr size);
extern void  runtime_free(void *p);

extern void runtime_mallocinit(void);

extern void runtime_enable_gc(void);
extern void runtime_disable_gc(void);

#endif
